The invention relates to digital data processing and, more particularly, to rules base systems and methods.
Computer systems that facilitate business operations based on information specific to an industry or enterprise are well known in the art. These typically rely on rules identifying situations that are expected to arise during enterprise operation and applicable responses. Such systems have been used in a range of applications, from health care to automotive repair. The rules on which they rely come from experts in the field, from the collective experience of workers on the “front line,” or a combination of these and other sources.
Simple computer systems of this sort incorporate application-specific knowledge directly into source code, using (for example) a sequence of “if . . . then . . . else” or “case” statements. From these, the executing systems can identify appropriate responses to conditions input, e.g., by a human operator, by automated monitoring equipment, and so forth. For example, a simple banking system for determining and displaying loan rates based on customer locale, customer type, and order size might encode such information as follows:                If (city=Boston) and (state=MA) and (customer=Platinum), then display 8.1%,        Elseif (city=Boston) and (state=MA) then display 8.3%,        Elseif (city=Providence) and (state=RI), then display 8%,        Elseif (city=New York) and (state=NY), then display 8.5%,        Elseif (city=Washington) and (state=DC) and (products ordered>3), then display 8.0%,        Elseif (city=Washington) and (state=DC) and (products ordered<=3), then display 8.1%,        Elseif (city=Sacramento) and (state=CA), then display 7.5%,        Elseif (city=San Francisco) and (state=CA), then display 6.6%.        
One drawback of this approach is that encoding knowledge in programming constructs themselves can make implementation difficult in all but the most limited applications. A further drawback is that the complexity and operational inefficiencies of these systems grow rapidly as their sizes increase.
More complex systems store knowledge separately from the programs that access them. Many of these use “rules bases” that store application-specific information in tables, database records, database objects, and so forth. For example, such a system might store the information above in a table as follows:
CityStateCustomer Type# ProdRateBostonMAPlatinum8.1%BostonMANot Platinum8.3ProvidenceRI8.0%New YorkNY8.5%WashingtonDC<38.1%WashingtonDC>38.0SacramentoCA7.5%San FranciscoCA6.6%
Traditionally, such tables (and, more broadly, such rules bases) are dedicated to a single class of problems. For example, a bank might use one rules base for determining loan rates and another for determining credit worthiness. More comprehensive systems combine rules covering diverse situations into a single knowledge or rules base, indexing those solutions by two or more values, e.g., “objective” and “circumstance” (or “objective,” “circumstance 1,” “circumstance 2,” and so forth). The objective identifies the class of problems, e.g., loan rates, credit worthiness, etc. The circumstances identify the particular situation of interest, e.g., customer locale, customer type, and/or order size (for the objective “loan rate”), savings balance level (for the objective “credit worthiness”), etc.
Such a rules base is disclosed in commonly assigned U.S. Pat. No. 5,826,250, entitled “Rules Bases and Methods of Access Thereof.” According to the abstract of that patent, each entry of a rules base has an associated objective and circumstance, as well as a status. The latter has values such as “valid” (indicating that information for that entry corresponds to a rule for the corresponding objective/circumstance), “inheritance” (indicating that the rule for the corresponding objective/circumstance is available, e.g., in another entry in the rules base), and so forth. Methods for using that rules base make use of these status designators, along with an inheritance structure that is maintained with the rules base, to find rules matching a designated objective and circumstance.
While rules bases of the type described in the foregoing patent and utilized in products of the assignee have met with great acceptance, there remains room for improvement.
An object of this invention is to provide improved systems and methods for digital data processing. A more particular object is to provide improved rules bases, as well as systems and methods that use them.
A further object is to provide such systems and methods as utilize rules bases that can be readily populated and searched.
A related object of the invention is to provide such systems and methods as utilize rules bases that store information without excessive redundancy and that can be easily modified.
Still another object of the invention is to provide such systems and methods as can be implemented on legacy, current and future digital data processing systems, and that operate without undue consumption of computer storage and processing resources.